Method and device for identifying devices which can be targeted for the purpose of establishing a communication session

ABSTRACT

Computer-based methods and devices for identifying devices and objects that can be targeted for the purpose of establishing a communication session are described. In an example embodiment, a mobile handset displays a visual indication of the location of devices in proximity relative to the location and orientation of the mobile handset. A mobile handset includes object recognition logic for determining when the mobile handset is targeting another device with which the mobile handset is authorized to communicate. In some cases, the targeted device may be a non-computing object serving as a proxy for another computing device.

TECHNICAL FIELD

The present disclosure generally relates to establishing a communicationsession between computing devices. Some example embodiments of thepresent disclosure relate to methods and computing devices foridentifying devices that can be targeted with a mobile device, andtargeting, with the mobile device, another computing device for thepurpose of initiating a communication session between the two devices.

BACKGROUND

It is not uncommon for modern homes and offices to have severalsophisticated computing devices with advanced processing, networking,and display capabilities. For example, digital cameras are able to senddigital photos, and digital picture frames are able to receive digitalphotos, via wireless networks. Flat panel television displays aredesigned with built-in processors and networking devices for receiving,processing and displaying content from other network-enabled devices.Mobile handsets, which have traditionally been used primarily for makingtelephone calls, now include powerful processors, touch screen displays,location and image sensors and advanced networking capabilities forexecuting a variety of software applications. Many of these computingdevices require significant technical knowledge and effort to configureand operate for effective use. Unfortunately, as the functionality ofthese computing devices increases, so too will their overall complexity.

In an environment with many network-capable devices, configuring twodevices to communicate with one another, and then actually establishinga communication session can be a difficult task. In some cases, it maybe difficult to even identify devices in an environment that are capableof establishing communication sessions. When a device capable of acommunication session is identified, it can still be difficult toactually establish the communication session. Furthermore, because somany advanced computing devices are mobile, a device that is present inan environment at one moment may not be present at a different time.Accordingly, it may be difficult to establish a communication sessionwith that device when it is not local.

SUMMARY

Computer or processor-based methods and systems for identifying devicesthat can be targeted by a mobile device are disclosed. In an exampleembodiment, a mobile handset receives location information for deviceswithin proximity of the mobile handset. The mobile handset analyzeslocation and orientation information for the mobile handset, and thenpresents a visual indication of the relative location of other devices,based on the location and orientation of the mobile device. Otherinformation may be received and displayed by the mobile handset, toinclude authorization information specifying the authority that themobile handset, or user, has to establish a communication session with aparticular device or devices. Additionally, the functional capabilitiesof one or more devices may also be visually conveyed by the mobilehandset.

In other example embodiments, the mobile handset includes an imagesensor and object recognition logic for determining when the mobilehandset is targeting another object or device. For instance, imagescaptured by the mobile handset are analyzed, and when a known object isidentified, the handset determines that it is targeting the knownobject. In some embodiments, the object might be a non-computing objectthat is serving as a proxy for a computing device.

Other aspects of the invention will become apparent from the detaileddescription that follows.

DESCRIPTION OF THE DRAWINGS

Some embodiments are illustrated by way of example and not limitation inthe figures of the accompanying drawings, in which:

FIG. 1 illustrates a real-world, physical environment including severalnetwork-enabled devices that may target, or be targeted, for the purposeof establishing a communication session, according to an embodiment ofthe invention;

FIG. 2 illustrates an example of a mobile computing device, andcorresponding user interface, for use in presenting the relativelocation of devices, with respect to the mobile device, according to anembodiment of the invention;

FIGS. 3 through 6 illustrate an example of a mobile computing device foruse in targeting a another device, for the purpose of establishing acommunication session with the targeted device, according to anembodiment of the invention;

FIG. 7 illustrates an example of a mobile computing device for use intargeting a non-computing object serving as a proxy for a computingdevice, according to an embodiment of the invention;

FIG. 8 illustrates a method, according to an embodiment of theinvention, for identifying and presenting the location of objects anddevices within proximity of a mobile device;

FIG. 9 illustrates a method, according to an embodiment of theinvention, for establishing a communication session between a mobilecomputing device and another device;

FIG. 10 is a functional block diagram illustrating various logic andfunctional components included in a mobile computing device, accordingto an embodiment of the invention, for use in targeting another devicefor the purpose of establishing a communication session between thedevices; and

FIG. 11 is a block diagram of a machine in the form of a computingdevice within which a set of instructions, for causing the machine toperform any one or more of the methodologies discussed herein, may beexecuted.

DETAILED DESCRIPTION

Computer-based methods and devices for identifying computing devicesthat can be targeted for the purposes of establishing a communicationsession are disclosed. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of example embodiments. It will be evident,however, to one skilled in the art that the present invention may bepracticed without these specific details.

Consistent with some example embodiments, a mobile computing device—orsimply “mobile device”—includes real-time targeting logic fordetermining the location of devices and objects in a particularenvironment with respect to the current location of the mobile device.The real-time targeting logic includes location logic and orientationlogic for analyzing orientation information for the mobile device, andlocation information for the mobile device and location information forother computing devices within a determinable proximity of the mobiledevice. Based on the location information for the mobile device and thelocation information for other computing devices in the environment, anda current orientation of the mobile device, a user interface module ofthe mobile device presents a visual indication of the location ofcomputing devices in the environment with respect to the location of themobile device.

In some embodiments, the mobile device includes an image sensor (e.g.,camera) and object recognition logic for analyzing images captured withthe image sensor. The object recognition logic compares images capturedwith the image sensor with object recognition information for deviceswithin close proximity of the mobile device to determine when the mobiledevice is targeting another device. When the mobile device is targetinganother device, a communication session might be established to transferdata, such as a file, from the mobile device to the targeted device, or,from a server or other computing device to the targeted device. Forexample, after targeting a computing device with a mobile device, themobile device may detect an input or signal resulting from a userinteraction with the mobile device (e.g., some user input or sequence ofinputs). Based on the detected input or interaction, the mobile devicemay communicate a reference to some electronically stored data (e.g. afile) to the targeted device along with a directive (e.g., command orinstruction or request) directing the targeted device to retrieve theelectronically stored data. In some embodiments, the mobile device maycommunicate the directive to a server, directing the server to initiatethe transfer of the electronically stored data to the targeted device.

In some embodiments, the real-time targeting logic determines when themobile device is targeting an object representing a proxy for anothercomputing device. When the mobile device is targeting the proxy object,a user of the mobile device can initiate a communication session of sometype with the computing device represented by the proxy object. Forexample, a user may specify that a plant is to serve as a proxy foranother person's mobile handset. By targeting the plant with his or hermobile device, the user can initiate a communication session with theother person's mobile handset.

FIG. 1 illustrates a real-world, physical environment including severalnetwork-enabled devices that may be targeted for the purpose ofestablishing a communication session of some type, according to anembodiment of the invention. The physical environment of FIG. 1 is aroom 10 in which there is a desktop computer 12 and printer 14 atop adesk, a flat-panel display 16 mounted on the wall, a digital pictureframe 18 atop a side table, a laptop computer 20 atop a coffee table,and a mobile handset 22 in the hand of a person 24. In this exampleenvironment, the personal computer 12, flat-panel display 16, digitalpicture frame 18, laptop computer 20, and mobile handset 22 representcomputing devices that may be targeted by a mobile device for thepurpose of establishing a communication session. As the laptop computer20 and mobile handset 22 are mobile devices, these devices additionallyrepresent devices that may be used to target other computing devices forthe purpose of establishing a communication session. At least some ofthe computing devices illustrated in FIG. 1 are network-enabled deviceshaving the ability to communicate information (e.g., electronicallystored data) with other computer devices via one or more wired orwireless networking technologies.

As used herein, the term “targeting” means to position a mobile device,both in terms of its location and orientation, so as to physically aimor point the mobile device at another object or device. The particularmechanism by which a mobile device determines that it is targetinganother device may vary. For instance, in some embodiments, the mobiledevice includes one or more sensors for determining the mobile device'slocation and orientation. With location logic and orientation logic foranalyzing the mobile device's orientation at a particular moment in timewhen the mobile device's location relative to another device is known,the mobile device can determine whether it is pointing in the directionof the other device. In some embodiments, the mobile device includes animage sensor and object recognition logic. In such an embodiment, themobile device determines it is targeting another device when objectrecognition information for the other device is detected in an imagecaptured by the mobile device.

When using a mobile device with location and orientation sensors totarget another device, the particular orientation that a device musthave relative to the location of the targeted device may vary indifferent embodiments. For example, in some embodiments, a mobile deviceis held generally horizontal, or parallel to the ground, when attemptingto target another device or object. Alternatively, in some embodiments,a mobile device is held generally vertical, or perpendicular to theground, in order to target another device. In some embodiments, theparticular orientation of the mobile device required to target anotherdevice or object is a configurable option, such that the mobile devicecan be configured to target other devices in an orientation that isgenerally horizontal, or alternatively, generally vertical, or in someother predetermined orientation.

In those embodiments that utilize object recognition technology todetermine if the mobile device is targeting another device, targeting isdependent upon pointing or aiming the image sensor of the mobile devicein the direction of the device to be targeted. For example, in someembodiments, a mobile device includes an image sensor (e.g., camera) andreal-time targeting logic with object recognition logic. Images capturedby the image sensor are analyzed by the real-time targeting logic bycomparing the captured images with object recognition information forvarious devices or objects within the environment. A mobile devicedetermines that it is targeting another device when the mobile devicerecognizes an image of a known object or device (e.g., a flat paneldisplay, a desktop computer, or other device or object) based on theknown object's or device's object recognition information.

Before another device can be targeted by the mobile device, the mobiledevice must have or obtain location information or object recognitioninformation for the device to be targeted. In some cases, the mobiledevice may have previously obtained the location information or objectrecognition information for one or more devices. In such a scenario, thelocation information or object recognition information for a device tobe targeted in a particular environment may be recalled or read from themobile device's memory when the mobile device determines that the mobiledevice is in the general proximity of the device to be targeted.

In some cases, a user may enter a new environment in which there aredevices that can be targeted by a mobile device. There are several waysthat a mobile device may obtain location information or objectrecognition information for objects and devices in a new environment. Insome embodiments, sensors in the environment detect the presence of themobile device and automatically initiate a transfer of locationinformation or object recognition information for devices in theenvironment to the mobile device. For example, the mobile device mayinclude a radio frequency identification (RFID) tag or device, which isread by an RFID reader located in the environment. The RFID reader thenreports the presence of the mobile device to a server, or some othercomputing device, which in turn establishes a communication session withthe mobile device and communicates location information or objectrecognition information for devices in the environment to the mobiledevice. Alternatively, in some embodiments, the mobile device, uponentering a new environment, requests location information or objectrecognition information for devices in the environment from a server orother computing device. In some embodiments, to obtain the locationinformation or object recognition information for devices in the newenvironment, the mobile device communicates location information for themobile device to a remote server, and the remote server responds withlocation information or object recognition information for the variousdevices in the environment. For instance, based on the location of themobile device, the remote server may communicate an environment model tothe mobile device for the environment or location of the mobile device.The environment model may include location information or objectrecognition information for devices that can be targeted by the mobiledevice. In addition, the environment model may include authorizationinformation for the mobile device, or the user of the mobile device.This authorization information establishes or provides a user'sauthority to establish a communication session (e.g., a contentmirroring session or control interface session, or some other type ofcommunication session) with various devices in the environment.

Referring again to FIG. 1, before a user physically manipulates a mobiledevice to target another device, the user may desire to see a physicalrepresentation of the locations of the devices in the environment thatcan be targeted. When the mobile device has the location information fordevices in the environment, the location and orientation logic of themobile device can determine, based on the current location andorientation of the mobile device, the location of devices in theenvironment relative to the mobile device. This information can beutilized to present a visual representation or map of the locations ofthe devices in the environment that can be targeted, relative to thelocation and orientation of the mobile device 22. As the location andorientation of the mobile device 22 changes, the mobile device 22updates the visual representation of the locations of other devices inreal time.

Using a user interface or map that depicts the visual representation ofthe locations of the devices in the environment, the person 24 with themobile handset in his hand can determine the location and target any ofthe computing devices in the room by viewing the display 23 of themobile handset 22 and simply pointing the mobile handset 22 at aparticular computing device.

FIG. 2 illustrates an example of a mobile computing device, andcorresponding user interface, for use in presenting the relativelocation of devices, with respect to the mobile device, according to anembodiment of the invention. The mobile handset 22 shown in FIG. 2 has adisplay 23 that is presenting a graphical user interface that indicatesthe locations of computing devices and objects in an environment,relative to the mobile handset 22. The mobile handset 22 is displaying acircle 26 representing three-hundred-sixty degrees of two dimensionalspace around the current location of the mobile handset 22. Accordingly,the mobile handset 22, if it was to appear in the user interface of thehandset's display, would be located at the center of the circle. In thisexample, the mobile handset 22 is assumed to be in the location,relative to other devices, as indicated in FIG. 1—for example, in aperson's 24 hand behind the sofa and generally aimed at, or pointing inthe direction of, the flat panel display 16 on the wall. Accordingly,the top of the circle 26, where the user interface element 28 with text“DAVE'S TV” appears, represents the physical space in the direction thatthe mobile device 22 is pointing. So, in this example, the userinterface element 28 at the top of the circle 26 indicates that themobile handset is currently aimed at, or pointed in the direction of,the flat panel display 16 (FIG. 1), which is identified by the name,“DAVE'S TV.” By pointing the handset in the direction of the flat paneldisplay 16, the person 24 can determine from the user interfacepresented by the mobile handset 22 that the flat panel display 16 hasthe name “DAVE'S TV” and that the person or mobile handset has beengranted the authority to interact in some manner with the flat paneldisplay.

As indicated by the user interface shown on the display 23 of the mobilehandset 22, the personal computer 12 and printer 14 are generallylocated to the left of the mobile handset 22, as indicated by the userinterface elements 30 and 32 with text “DAVE'S DESKTOP PC” and “DAVE'SPRINTER” respectively. Similarly, user interface elements 34 and 36indicate that the laptop 20 and digital photo frame 18 are located at apositive forty-five degree angle, as measured from an imaginary axisrepresented by a line extending in the direction in which the mobilehandset 22 is pointing. In addition, user interface element 38 indicatesthe location of the plant 25 relative to the location of the mobiledevice. As described in greater detail below, the plant serves as aproxy for another computing device.

In some embodiments, the user interface of the mobile device 22 providesa visual indication of additional information for the devices, beyondeach device's location relative to the mobile handset 22. In someembodiments, the user interface element representing each device in theenvironment may indicate a device's capabilities, for example, functionsthe device is capable of performing. In some embodiments, authorizationinformation for each device is presented. For example, the userinterface may convey one or more access rights that the mobile device,or a user of the mobile device, has with respect to one or more of thedevices whose locations are being presented. In some embodiments, thetype of interaction that the mobile device, or a user of the mobiledevice, has been authorized to establish may be conveyed by the userinterface. For instance, if a user has been authorized to establish acommunication session with an application executing at another device,the user interface element or icon representing that other device mayindicate that a communication session can be established with thatdevice.

In some embodiments, the level of access or authority that a mobiledevice or user has with respect to another device may be conveyed. Forinstance, as the legend 40 in FIG. 2 indicates, the format of the userinterface elements 28, 30, 32, 34, 36 and 38 indicates a level ofauthority the mobile device has for each device presented. Specifically,the user interface element 28 with text “DAVE'S TV” indicates that themobile device is currently connected to a device by the same name, inthis case, the flat panel display 16. In this example, the mobilehandset has no authorization (e.g., “NO ACCESS”) to communicate orconnect with the desktop computer 12 (e.g. “DAVE'S DESKTOP” 30) or thelaptop computer 20 (e.g., “DAVE'S LAPTOP” 36). The mobile device hasfull access to the printer and limited access to the digital photoframe. If the authorization information indicates that the person 24 hasbeen granted the authority to interact with another device, when theperson 24 aims the mobile handset to target a device with which theperson 24 has been authorized to interact, the mobile handset 22 willdisplay a visual indicator that indicates the mobile handset 22 istargeting a particular device, and the user has been authorized toestablish an interactive session of some type with the targeted device.

FIGS. 3 through 6 illustrate an example of a mobile computing device 42for use in targeting another device 16, for the purpose of establishinga communication session with the targeted device, according to anembodiment of the invention. Each of FIGS. 3 through 6 illustrates amobile handset 42 (e.g., mobile phone, personal digital assistant,personal media player, or similar device) with an image sensor at aparticular point in time, being in a particular location and having aparticular orientation with respect to a flat-panel display 16. FIGS. 3through 6 illustrate an example of how, in one embodiment, the mobilehandset 42 responds as the location and orientation of the mobilehandset 42 changes and causes the mobile handset's image sensor tocapture new images. In particular, the figures illustrate an example ofhow a graphical user interface is presented on the mobile handset 42 asthe mobile handset 42 is physically manipulated by a person 24 to targeta flat-panel display 16 with which the mobile handset 42 has beenauthorized to interact. The mobile handset 42 illustrated in FIGS. 3through 6 has a touch screen display 44 for presenting a graphical userinterface and detecting input (e.g., user input). It will be appreciatedby those skilled in the art that in various embodiments, input may bereceived or detected via a finger or stylus interacting with a touchscreen display, buttons, touch pads, joysticks, thumb scrolls, or otherinput devices or mechanisms.

In FIG. 3, a user has selected a file that the user desires to transferto the flat-panel display 16 on the wall. In this example, the filerepresents a digital photograph that the user would like displayed in aslideshow application that is executing, at least in part, at the flatpanel display 16. The selection of the file is made by pressing a finger46 on the user interface element 48, which in this example is agraphical icon that represents the file. In some embodiments, a userinterface element presented on the mobile device's display 44 representsa file stored at the mobile handset 42. Alternatively, a user interfaceelement may represent a file that is stored at a remote device, such asa server or some other computing device. Furthermore, the exact look andlocation of the user interface elements presented on the display canvary greatly from one implementation to the next. Those skilled in theart of user interface design will appreciate that any number and varietyof user interface elements might be used to represent electronicallystored information, such as a file.

In FIG. 4, as the user moves the mobile handset 42 in an effort totarget the flat-panel display 16, the user is continuing to press his orher finger 46 on the user interface element 48 representing the digitalphotograph file. In this example, targeting is achieved by pointing themobile handset's image sensor in the direction of the flat-panel display16, such that the image sensor captures images of the flat-panel display16. As illustrated in FIG. 4, the display 44 of the mobile handset 42 ispresenting or displaying images captured by the mobile handset's imagesensor. Accordingly, as shown in FIG. 4 the mobile handset is currentlyaimed at, or pointed in the direction, of the left portion of theflat-panel display 16. As such, an image 50 of the left portion of theflat-panel display is depicted on the display 44 of the mobile handset42.

In FIG. 5, the user continues to press on the user interface element 48representing the digital photograph file. As the user continues to movethe mobile handset to target the flat panel display, the objectrecognition logic of the handset's real-time targeting logic processesimages captured from the image sensor in real-time. Once the objectrecognition logic identifies an image of the flat panel display 16, themobile handset determines that it is targeting the flat panel display16. Accordingly, the mobile handset 42 presents or displays a userinterface element 52 to indicate that the mobile handset is currentlytargeting the flat panel display, and that the mobile handset isauthorized to transfer the digital photograph file to the flat paneldisplay 16. In this example, the user interface element has the text“DAVE'S TV” to indicate that the mobile handset is targeting the flatpanel display and the text “slideshow” to indicate the nature of thefile transfer.

In this example, the mobile handset 42 determines that it is targetingthe flat-panel display 16 by comparing images captured with the mobilehandset's image sensor with previously captured images or objectrecognition information, for the flat-panel display 16. As shown in FIG.5, the user interface elements 52 provide a visual indication that themobile handset is currently targeting the flat-panel display 16. Inaddition, a user interface element may indicate that the mobile handset,or a user of the mobile handset, has authority to initiate acommunication session of some type with the flat panel display. Forinstance, in some embodiments, the communication session may be a fileor data transfer. In this example, a user has been authorized to add adigital photograph to a slideshow application executing at theflat-panel display.

To initiate the file transfer, the user lifts his finger from the userinterface element 48 representing the digital photograph file. Bylifting his or her finger from the user interface element, the userinitiates the transfer of the digital photograph file to the flat-paneldisplay 16. In some embodiments, the mobile handset 42 communicates adirective (e.g., command, request or instruction) along with a referenceto the file, from the mobile handset 42 to the flat-panel display 16.When received, the flat panel display 16 processes the directive anduses the reference to request the file from a server or other computingdevice. In some embodiments, the mobile handset 42 communicates areference to the file to a server along with a directive, directing theserver to communicate the file to the flat-panel display 16. In otherembodiments, the file may be communicated directly from the mobilehandset 42 to the flat-panel display 16.

FIG. 7 illustrates an example of a mobile computing device for use intargeting a non-computing object serving as a proxy for a computingdevice, according to an embodiment of the invention. As illustrated inFIG. 7, a mobile handset 60 is pointing in the direction of a plant 62.In this example, a user has previously associated the plant 62 with acomputing device. Specifically, in this example, the user has previouslyassociated the plant 62 with a mobile phone belonging to someone withthe name “Jerry G.” as indicated by the user interface element withreference number 64 on the mobile handset's display 66. The userinterface element 64 indicates that the mobile handset is targeting theplant, and in this case, that the plant represents Jerry G.'s phone 68.Accordingly, several additional user interface elements 70, 72 and 74are displayed on the mobile handset's display 66 and allow or enable theuser to communicate with Jerry G.'s phone by targeting the plant.

To utilize an object as a proxy for another computing device, the mobilehandset must be trained first to recognize that it is targeting theobject, and additionally that the object is serving as a proxy for aparticular computing device. The method of training the mobile handsetto recognize when it is targeting the object depends on what type oftargeting is to occur. For example, if the mobile handset is going touse location and orientation information to determine the handset'slocation and orientation relative to the location of the object, thentraining may be achieved with a triangulation algorithm. For example, auser may point the mobile handset at the plant, and then provide someinput to establish a first location and orientation for which the mobilehandset is targeting the plant. Next, the user might move to a newlocation and again point the mobile handset at the plant and providesome input to indicate that the handset is targeting the plant. With twoknown locations and orientations for which the mobile handset istargeting the plant, the mobile handset can use triangulation todetermine other locations and orientations for which the mobile handsetwill be targeting the plant.

If object recognition logic is to be used for targeting the object, thena user can capture one or more images of the object (e.g., the plant)and establish object recognition information for the plant. When themobile handset's object recognition logic later analyzes an imagecaptured from the image sensor, and recognizes the object in the image,the mobile handset determines that is pointing in the direction of theobject, and thus targeting the object.

FIG. 8 illustrates a method, according to an embodiment of theinvention, for establishing a communication session between a mobiledevice and another device. The method begins at method operation 80 whena mobile device communicates location information for the mobile deviceto a server. For example, a mobile device with a GPS receiver maydetermine its location, and then communicate its location to a server.Alternatively, a sensor (e.g., RFID reader or other presence sensor) inthe environment may detect the presence of the mobile device andcommunicate location information identifying the location at which themobile device was detected to a server.

At method operation 82 the server receives the location information forthe mobile device. Next, at method operation 84, the server identifieslocation information, object recognition information, and/orauthorization information for devices within proximity of the mobiledevice. For example, based on the location information for the mobiledevice, the server can first determine if other devices are near themobile device. For those devices determined to be located near themobile device, the server can look up in a database or otherwisedetermine location information for those devices. Additionally, theserver identifies object recognition information, which can be used bythe mobile device to recognize devices in proximity of the mobiledevice. In some embodiments, the server identifies authorizationinformation, which indicates whether or not the mobile device, or a userof a mobile device, has been granted the authority to interact withanother device. At method operation 86, the location information, objectrecognition information, and/or authorization information arecommunicated from the server to the mobile device. The locationinformation and object recognition information and authorizationinformation may be embedded in a three dimensional environment model.Accordingly, the server may simply identify and select the environmentmodel associated with the location of the mobile device, and communicatethat environment model to the mobile device.

At method operation 88, the mobile device receives location information,object recognition information and/or authority information for thosedevices within proximity of the mobile device. Next, at method operation90, the mobile device analyzes location information and orientationinformation for the mobile device. For example, based on locationinformation and orientation information received from sensors of themobile device, the mobile device determines whether or not it istargeting another device in the environment.

At method operation 92, the mobile device displays a user interface thatpresents a visual indication of the location of devices relative to thelocation and orientation of the mobile device, as illustrated in theexample provided in FIG. 2. In addition, authorization information maybe conveyed by the user interface.

FIG. 9 illustrates a method for targeting a device or object, for thepurpose of establishing a communication session with that device orobject, according to an embodiment of the invention. Method operations80, 82 84, 86, and 88 are the same for the method of FIG. 9 as they arefor the method of FIG. 8. At method operation 90, however, the mobilehandset analyzes object recognition information to determine if themobile device is targeting another device or object. For example, basedon a comparison of object recognition information with images capturedwith an image sensor, the mobile device determines whether or not it istargeting another device in the environment.

At method operation 96, the mobile device displays a user interfaceelement that identifies a device being targeted by the mobile device andindicates that the mobile device has the authority to establish acommunication session with the targeted device. At method operation 98,the mobile device detects an input, or series of inputs. In response todetecting the input(s), the mobile device communicates a request toinitiate a communication session at method operation 100. This requestmay be communicated to a server or directly to the targeted device. Forexample, the request may include a reference to a file, and when therequest is received at the targeted device, the targeted device requeststhe file from its source (e.g., a server). Alternatively, the requestmay be directed to a server, which, in turn, processes the request andcommunicates the file to the targeted device.

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesor logics that operate to perform one or more operations or functions.The modules and logics referred to herein may, in some exampleembodiments, comprise processor-implemented modules or logics.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or more processors orprocessor-implemented modules or logic. The performance of certain ofthe operations may be distributed among the one or more processors, notonly residing within a single machine, but deployed across a number ofmachines. In some example embodiments, the processor or processors maybe located in a single location (e.g., within a home environment, anoffice environment or as a server farm), while in other embodiments theprocessors may be distributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of theoperations may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork (e.g., the Internet) and via one or more appropriate interfaces(e.g., Application Program Interfaces (APIs).)

FIG. 10 is a functional block diagram illustrating various functionalmodules and logics included in a mobile device, according to anembodiment of the invention, for use in targeting another device for thepurpose of establishing a communication session. Illustrated is anexample mobile handset 22 that includes functionality that enables themobile handset 22 to interact with other computing devices in general,and establish a communication session in particular. The interactionswith other devices may occur in an environment and may represent orcomprise a communication session of some type. The various elementsillustrated in FIG. 10 may be implemented using hardware, firmware,software, or a combination thereof. Context module 102 includes aninteraction module and an environment module. This interaction modulemay be used to establish a session (e.g., a communication session duringwhich data is exchanged) on behalf of an application 104 in which themobile device 22 participates. As shown in FIG. 10, there are severalapplications included in an application bundle, any one of which mayestablish a communication session. Example applications include FLASH™of Adobe Systems, Inc., ACROBAT™ of Adobe Systems, Inc., PHOTOSHOP™ ofAdobe Systems, Inc., or some other suitable application. Additionally,the context module 102 may include an environment module that is used togenerate a request for environment information—including a request forlocation information, object recognition information, or authorizationinformation—and to process the environment information.

The context module 102 may be connected to a database 108 which maystore environment information, such as location information and/orobject recognition information for computing devices in a particularphysical environment. Such information may be stored in a threedimensional environment model 110. The mobile handset 22 may includevarious types of communication interfaces 112, 114 to facilitate datacommunications with other devices generally, and specificallyestablishing a session, to communicate with other computing devices.

The mobile handset 22 includes at least one sensor interface 116 forreceiving information from a sensor. For instance, the sensor interface116 may receive location information and/or orientation information froma location sensor or an orientation sensor. This location andorientation information is processed by the real-time targeting logic118 to determine that the mobile device is targeting a computing device,based on location information for the computing device. The real-timetargeting logic includes object recognition logic 108 and location andorientation logic 122. The location and orientation logic 122 processlocation information and orientation information to determine when themobile handset 22 is targeting another computing device. Similarly, theobject recognition logic 120 processes images received from an imagesensor interface 124, which is coupled in some embodiments to an imagesensor, such as a camera.

FIG. 11 is a block diagram of a machine in the form of a mobile devicewithin which a set of instructions, for causing the machine to performany one or more of the methodologies discussed herein, may be executed.In alternative embodiments, the machine operates as a standalone deviceor may be connected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine in server-client network environments, or as a peermachine in peer-to-peer (or distributed) network environments. Themachine may be a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a mobile telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting instructions (sequential or otherwise) that specify actions tobe taken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein.

The example computer system 1500 includes a processor 1502 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), a main memory 1501 and a static memory 1506, which communicatewith each other via a bus 1508. The computer system 1500 may furtherinclude a display unit 1510, an alphanumeric input device 1517 (e.g., akeyboard), and a user interface (UI) navigation device 1511 (e.g., amouse). In one embodiment, the display, input device and cursor controldevice are a touch screen display. The computer system 1500 mayadditionally include a storage device (e.g., drive unit 1516), a signalgeneration device 1518 (e.g., a speaker), a network interface device1520, and one or more sensors 1521, such as a global positioning systemsensor, compass, accelerometer, or other sensor.

The drive unit 1516 includes a machine-readable medium 1522 on which isstored one or more sets of instructions and data structures (e.g.,software 1523) embodying or utilized by any one or more of themethodologies or functions described herein. The software 1523 may alsoreside, completely or at least partially, within the main memory 1501and/or within the processor 1502 during execution thereof by thecomputer system 1500, the main memory 1501 and the processor 1502 alsoconstituting machine-readable media.

While the machine-readable medium 1522 is illustrated in an exampleembodiment to be a single medium, the term “machine-readable medium” mayinclude a single medium or multiple media (e.g., a centralized ordistributed database, and/or associated caches and servers) that storethe one or more instructions. The term “machine-readable medium” shallalso be taken to include any tangible medium that is capable of storing,encoding or carrying instructions for execution by the machine and thatcause the machine to perform any one or more of the methodologies of thepresent invention, or that is capable of storing, encoding or carryingdata structures utilized by or associated with such instructions. Theterm “machine-readable medium” shall accordingly be taken to include,but not be limited to, solid-state memories, and optical and magneticmedia. Specific examples of machine-readable media include non-volatilememory, including by way of example semiconductor memory devices, e.g.,EPROM, EEPROM, and flash memory devices; magnetic disks such as internalhard disks and removable disks; magneto-optical disks; and CD-ROM andDVD-ROM disks.

The software 1523 may further be transmitted or received over acommunications network 1526 using a transmission medium via the networkinterface device 1520 utilizing any one of a number of well-knowntransfer protocols (e.g., HTTP). Examples of communication networksinclude a local area network (“LAN”), a wide area network (“WAN”), theInternet, mobile telephone networks, Plain Old Telephone (POTS)networks, and wireless data networks (e.g., Wi-Fi® and WiMax® networks).The term “transmission medium” shall be taken to include any intangiblemedium that is capable of storing, encoding or carrying instructions forexecution by the machine, and includes digital or analog communicationssignals or other intangible medium to facilitate communication of suchsoftware.

Although an embodiment has been described with reference to specificexample embodiments, it will be evident that various modifications andchanges may be made to these embodiments without departing from thebroader spirit and scope of the invention. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense. The accompanying drawings that form a parthereof, show by way of illustration, and not of limitation, specificembodiments in which the subject matter may be practiced. Theembodiments illustrated are described in sufficient detail to enablethose skilled in the art to practice the teachings disclosed herein.Other embodiments may be utilized and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. This Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

1. A processor-implemented method comprising: communicating locationinformation for a first device to a server; responsive to communicatingthe location information for the first device to the server, receiving,at the first device, location information and authorization informationfor at least a second device, the authorization information for thesecond device defining whether the first device or its end-user has beengranted authority to establish a communication session with the seconddevice; analyzing the location information for the second device andlocation information for the first device to determine the location ofthe second device relative to the location of the first device;analyzing orientation information for the first device; and based on theorientation information for the first device in combination with thelocation of the second device relative to the location of the firstdevice, presenting at the first device a first user interface elementindicating a direction of the second device relative to the location andorientation of the first device and providing a visual indicator ofwhether the first device or its end-user has been granted authority toestablish a communication session with the second device.
 2. Theprocessor-implemented method of claim 1, wherein the user interfaceelement provides a visual indication of functional capabilities for thesecond device.
 3. The processor-implemented method of claim 1, furthercomprising: receiving, at the first device, location information for anobject configured to serve as a proxy for a remote device; analyzing thelocation information for the object and location information for thefirst device to determine the location of the object relative to thelocation of the first device; analyzing orientation information for thefirst device; and based on the orientation information for the firstdevice and the location of the object relative to the location of thefirst device, presenting at the first device a second user interfaceelement indicating a direction of the object relative to the locationand orientation of the first device.
 4. The processor-implemented methodof claim 3, further comprising: detecting an input representing aselection of the second user interface element; and presenting at thefirst device information associated with the remote device, theinformation including a current location of the remote device.
 5. Amobile computing device comprising: a display to present a visualindication of a direction of a second device relative to a location andorientation of the mobile computing device; a wireless communicationdevice to exchange information with other computing devices; aprocessor-implemented context module to communicate a request to aserver via the wireless communication device, the request specifyinglocation information for the mobile computing device and requestinglocation information and authorization information for devices in adefined proximity of the mobile computing device; processor-implementedlocation logic to analyze location information for the second device andlocation information for the mobile computing device to determine thelocation of the second device relative to the location of the mobilecomputing device; processor-implemented orientation logic to analyzeorientation information for the mobile computing device; andprocessor-implemented user interface logic to present at the mobilecomputing device a first user interface element indicating a directionof the second device relative to the location and orientation of themobile computing device, the direction determined based on theorientation information for the first device in combination with thelocation of the second device relative to the location of the firstdevice.
 6. The mobile computing device of claim 5, wherein the firstuser interface element provides a visual indication of authorizationinformation for the second device, the authorization informationincluding a right of the mobile computing device to exchange data withthe second device.
 7. The mobile computing device of claim 5, whereinthe user interface element provides a visual indication of functionalcapabilities for the second device.
 8. The mobile computing device ofclaim 5, further comprising: a location sensor to generate locationinformation for the mobile computing device; and an orientation sensorto generate orientation information for the mobile computing device. 9.A method comprising: executing instructions on a mobile computing deviceto communicate location information for the mobile computing device to aserver; executing instructions on a mobile computing device to receive,at the mobile computing device and in response to communicating thelocation information for the mobile computing device to the server,location information and authorization information for at least oneother computing device, the authorization information for the at leastone other computing device defining whether the mobile computing deviceor its end-user has been granted authority to establish a communicationsession with the one other device; executing instructions on the mobilecomputing device to analyze the location information for the at leastone other computing device and location information for the mobilecomputing device to determine the location of the at least one othercomputing device relative to the location of the mobile computingdevice; executing instructions on the mobile computing device to analyzeorientation information for the mobile computing device; and based onthe orientation information for the first mobile computing device incombination with the location of the at least one other computing devicerelative to the location of the mobile computing device, executinginstructions on the mobile computing device to present at the mobilecomputing device a first user interface element indicating a directionof the at least one other computing device relative to the location andorientation of the mobile computing device and providing a visualindicator of whether the mobile computing device or its end-user hasbeen granted authority to establish a communication session with the oneother device.